/*



*/
#include <algorithm>
#include <cstdint>
#include <iostream>
#include <istream>
#include <vector>
using ll = int64_t;

ll n;
std::vector<std::vector<ll>> edg,dp;

static inline void dfs(ll f,ll u){
    for(ll v:edg[u]){
        if(v==f)continue;
        dfs(u,v);
        dp[u][1]+=std::min(
            dp[v][0],
            dp[v][1]
        );
        dp[u][0]+=dp[v][1];
    }
}


int main(){
    std::iostream::sync_with_stdio(false);
    std::cin.tie(nullptr);

    std::cin>>n;
    edg.resize(n);
    dp.resize(n,std::vector<ll>(2,0));
    for(ll i=1;i<=n;++i){
        dp[i-1][1]=1;
        ll u,k;
        std::cin>>u>>k;
        for(ll j=1;j<=k;++j){
            ll v;
            std::cin>>v;
            edg[u].push_back(v);
            edg[v].push_back(u);
        }
    }

    dfs(0, 0);
    // for(ll i=0;i<n;i++){
    //     for(ll j=0;j<2;j++){
    //         printf("dp[%lld][%lld]=%lld\n",i,j,dp[i][j]);
    //     }
    // }
    std::cout<<std::min(dp[0][0],dp[0][1])<<"\n";
}